home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / management / GcInfoCompositeData.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  5.2 KB  |  151 lines

  1. package sun.management;
  2.  
  3. import com.sun.management.GcInfo;
  4. import java.io.InvalidObjectException;
  5. import java.lang.management.MemoryUsage;
  6. import java.lang.reflect.Method;
  7. import java.util.Map;
  8. import javax.management.openmbean.CompositeData;
  9. import javax.management.openmbean.CompositeDataSupport;
  10. import javax.management.openmbean.CompositeType;
  11. import javax.management.openmbean.OpenDataException;
  12. import javax.management.openmbean.OpenType;
  13. import javax.management.openmbean.SimpleType;
  14. import javax.management.openmbean.TabularData;
  15.  
  16. public class GcInfoCompositeData extends LazyCompositeData {
  17.    private final GcInfo info;
  18.    private final GcInfoBuilder builder;
  19.    private final Object[] gcExtItemValues;
  20.    // $FF: renamed from: ID java.lang.String
  21.    private static final String field_0 = "id";
  22.    private static final String START_TIME = "startTime";
  23.    private static final String END_TIME = "endTime";
  24.    private static final String DURATION = "duration";
  25.    private static final String MEMORY_USAGE_BEFORE_GC = "memoryUsageBeforeGc";
  26.    private static final String MEMORY_USAGE_AFTER_GC = "memoryUsageAfterGc";
  27.    private static final String[] baseGcInfoItemNames = new String[]{"id", "startTime", "endTime", "duration", "memoryUsageBeforeGc", "memoryUsageAfterGc"};
  28.    private static MappedMXBeanType memoryUsageMapType;
  29.    private static OpenType[] baseGcInfoItemTypes;
  30.    private static CompositeType baseGcInfoCompositeType;
  31.  
  32.    public GcInfoCompositeData(GcInfo var1, GcInfoBuilder var2, Object[] var3) {
  33.       this.info = var1;
  34.       this.builder = var2;
  35.       this.gcExtItemValues = var3;
  36.    }
  37.  
  38.    public GcInfo getGcInfo() {
  39.       return this.info;
  40.    }
  41.  
  42.    protected CompositeData getCompositeData() {
  43.       Object[] var1;
  44.       try {
  45.          var1 = new Object[]{new Long(this.info.getId()), new Long(this.info.getStartTime()), new Long(this.info.getEndTime()), new Long(this.info.getDuration()), memoryUsageMapType.toOpenTypeData(this.info.getMemoryUsageBeforeGc()), memoryUsageMapType.toOpenTypeData(this.info.getMemoryUsageAfterGc())};
  46.       } catch (OpenDataException var6) {
  47.          throw Util.newAssertionError(var6);
  48.       }
  49.  
  50.       int var2 = this.builder.getGcExtItemCount();
  51.       if (var2 == 0 && this.gcExtItemValues != null && this.gcExtItemValues.length != 0) {
  52.          throw new InternalError("Unexpected Gc Extension Item Values");
  53.       } else if (var2 <= 0 || this.gcExtItemValues != null && var2 == this.gcExtItemValues.length) {
  54.          Object[] var3 = new Object[var1.length + var2];
  55.          System.arraycopy(var1, 0, var3, 0, var1.length);
  56.          if (var2 > 0) {
  57.             System.arraycopy(this.gcExtItemValues, 0, var3, var1.length, var2);
  58.          }
  59.  
  60.          try {
  61.             return new CompositeDataSupport(this.builder.getGcInfoCompositeType(), this.builder.getItemNames(), var3);
  62.          } catch (OpenDataException var5) {
  63.             throw Util.newInternalError(var5);
  64.          }
  65.       } else {
  66.          throw new InternalError("Unmatched Gc Extension Item Values");
  67.       }
  68.    }
  69.  
  70.    static String[] getBaseGcInfoItemNames() {
  71.       return baseGcInfoItemNames;
  72.    }
  73.  
  74.    static synchronized OpenType[] getBaseGcInfoItemTypes() {
  75.       if (baseGcInfoItemTypes == null) {
  76.          OpenType var0 = memoryUsageMapType.getOpenType();
  77.          baseGcInfoItemTypes = new OpenType[]{SimpleType.LONG, SimpleType.LONG, SimpleType.LONG, SimpleType.LONG, var0, var0};
  78.       }
  79.  
  80.       return baseGcInfoItemTypes;
  81.    }
  82.  
  83.    public static long getId(CompositeData var0) {
  84.       return getLong(var0, "id");
  85.    }
  86.  
  87.    public static long getStartTime(CompositeData var0) {
  88.       return getLong(var0, "startTime");
  89.    }
  90.  
  91.    public static long getEndTime(CompositeData var0) {
  92.       return getLong(var0, "endTime");
  93.    }
  94.  
  95.    public static Map<String, MemoryUsage> getMemoryUsageBeforeGc(CompositeData var0) {
  96.       try {
  97.          TabularData var1 = (TabularData)var0.get("memoryUsageBeforeGc");
  98.          return (Map)memoryUsageMapType.toJavaTypeData(var1);
  99.       } catch (InvalidObjectException var2) {
  100.          throw Util.newAssertionError(var2);
  101.       } catch (OpenDataException var3) {
  102.          throw Util.newAssertionError(var3);
  103.       }
  104.    }
  105.  
  106.    public static Map<String, MemoryUsage> getMemoryUsageAfterGc(CompositeData var0) {
  107.       try {
  108.          TabularData var1 = (TabularData)var0.get("memoryUsageAfterGc");
  109.          return (Map)memoryUsageMapType.toJavaTypeData(var1);
  110.       } catch (InvalidObjectException var2) {
  111.          throw Util.newAssertionError(var2);
  112.       } catch (OpenDataException var3) {
  113.          throw Util.newAssertionError(var3);
  114.       }
  115.    }
  116.  
  117.    public static void validateCompositeData(CompositeData var0) {
  118.       if (var0 == null) {
  119.          throw new NullPointerException("Null CompositeData");
  120.       } else if (!isTypeMatched(getBaseGcInfoCompositeType(), var0.getCompositeType())) {
  121.          throw new IllegalArgumentException("Unexpected composite type for GcInfo");
  122.       }
  123.    }
  124.  
  125.    private static synchronized CompositeType getBaseGcInfoCompositeType() {
  126.       if (baseGcInfoCompositeType == null) {
  127.          try {
  128.             baseGcInfoCompositeType = new CompositeType("sun.management.BaseGcInfoCompositeType", "CompositeType for Base GcInfo", getBaseGcInfoItemNames(), getBaseGcInfoItemNames(), getBaseGcInfoItemTypes());
  129.          } catch (OpenDataException var1) {
  130.             throw Util.newException(var1);
  131.          }
  132.       }
  133.  
  134.       return baseGcInfoCompositeType;
  135.    }
  136.  
  137.    static {
  138.       try {
  139.          Method var0 = GcInfo.class.getMethod("getMemoryUsageBeforeGc");
  140.          memoryUsageMapType = MappedMXBeanType.getMappedType(var0.getGenericReturnType());
  141.       } catch (NoSuchMethodException var1) {
  142.          throw Util.newAssertionError(var1);
  143.       } catch (OpenDataException var2) {
  144.          throw Util.newAssertionError(var2);
  145.       }
  146.  
  147.       baseGcInfoItemTypes = null;
  148.       baseGcInfoCompositeType = null;
  149.    }
  150. }
  151.